package com.yuda.campsite.controller;

import com.alibaba.fastjson.JSONObject;
import com.google.gson.JsonObject;
import com.yuda.campsite.domain.ShouHuoDiZhi;
import com.yuda.campsite.domain.ZhengShuGuanLi;
import com.yuda.campsite.dto.ZhengShuGuanLiParam;
import com.yuda.campsite.service.ZhengShuGuanLiService;
import com.yuda.common.core.utils.poi.ExcelUtil;
import com.yuda.common.core.web.domain.AjaxResult;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author: xiaohudie
 * @Date: 2022/2/9 17:04
 * @Version: 1.8
 */
@RestController
@RequestMapping("/ZhengShuGuanLi")
public class ZhengShuGuanLiController {
    /**注入证书管理的service*/
    @Resource
    private ZhengShuGuanLiService zhengShuGuanLiService;
    /**获取证书页面的列表*/
    @GetMapping("/LieBiao")
    public String HuoDieLiBiao(ZhengShuGuanLiParam zhengShuGuanLiParam){
        /**首先获取这个列表的total*/
        Integer a= (zhengShuGuanLiParam.getQisi()-1)*zhengShuGuanLiParam.getOffset();
        zhengShuGuanLiParam.setQisi(a);
        List<ZhengShuGuanLi> zhengShuGuanLis = zhengShuGuanLiService.ZhengShuGuanLiLieBiao(zhengShuGuanLiParam);
        for (ZhengShuGuanLi zhengShuGuanLi : zhengShuGuanLis) {
            if (zhengShuGuanLi.getIsXuexiBiaobing()!=null && zhengShuGuanLi.getIsXuexiBiaobing().equals("0")){
                zhengShuGuanLi.setIsXuexiBiaobing("否");
            }
            if (zhengShuGuanLi.getIsXuexiBiaobing()!=null && zhengShuGuanLi.getIsXuexiBiaobing().equals("1")){
                zhengShuGuanLi.setIsXuexiBiaobing("是");
            }
            if (zhengShuGuanLi.getXuexiChengguo()!=null && zhengShuGuanLi.getXuexiChengguo().equals("0")){
                zhengShuGuanLi.setXuexiChengguo("否");
            }
            if (zhengShuGuanLi.getXuexiChengguo()!=null && zhengShuGuanLi.getXuexiChengguo().equals("1")){
                zhengShuGuanLi.setXuexiChengguo("是");
            }
        }
        /**为了计算total查询的对象*/
        zhengShuGuanLiParam.setQisi(0);
        zhengShuGuanLiParam.setOffset(10000);
        List<ZhengShuGuanLi> zhengShuGuanLis1 = zhengShuGuanLiService.ZhengShuGuanLiLieBiao(zhengShuGuanLiParam);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("message","请求成功");
        jsonObject.put("code",200);
        jsonObject.put("total",zhengShuGuanLis1.size());
        jsonObject.put("data",zhengShuGuanLis);
        return jsonObject.toJSONString();
    }
    /**控制学生是不是优秀营员的方法0不是，1是*/
    @PostMapping("/XuiGai")
    public AjaxResult XuiGai(ZhengShuGuanLiParam zhengShuGuanLiParam){
        zhengShuGuanLiService.ZhengShuGuanLiXiuGai(zhengShuGuanLiParam);
        return AjaxResult.success("指定成功");
    }
   /**判断全体学生的标兵情况*/
   @PostMapping("/BiaoBing")
    public AjaxResult BiaoBing(ZhengShuGuanLiParam zhengShuGuanLiParam){
    /**首先查出这个营地的所有学生成绩列表*/
    zhengShuGuanLiParam.setQisi(0);
    zhengShuGuanLiParam.setOffset(10000);
    List<ZhengShuGuanLi> zhengShuGuanLis = zhengShuGuanLiService.ZhengShuGuanLiLieBiao(zhengShuGuanLiParam);
    ArrayList<ZhengShuGuanLi> zhengShuGuanLiArrayList = new ArrayList();
       for (ZhengShuGuanLi zhengShuGuanLi : zhengShuGuanLis) {
           if (zhengShuGuanLi.getWorkId()!=null && zhengShuGuanLi.getWorkId().equals(zhengShuGuanLiParam.getWorkId())){
               zhengShuGuanLiArrayList.add(zhengShuGuanLi);

           }
       }
       System.out.println("题号相同的人数为：********"+zhengShuGuanLiArrayList.size());
       /**这个集合里面的人一个一个比较，然后执行update方法*/
    if (zhengShuGuanLiParam.getFuhao().equals(">=")){
        for (ZhengShuGuanLi zhengShuGuanLi : zhengShuGuanLiArrayList) {
            /**再判断该学生的作业是否是这个指定的作业*/
            if (zhengShuGuanLi.getScore() != null && zhengShuGuanLi.getScore() >= zhengShuGuanLiParam.getSocre()) {
                    zhengShuGuanLiParam.setUuid(zhengShuGuanLi.getUuid());
                    zhengShuGuanLiService.ZhengShuGuanLiBiaoBing(zhengShuGuanLiParam);
                }else {
                zhengShuGuanLiParam.setUuid(zhengShuGuanLi.getUuid());
                zhengShuGuanLiService.ZhengShuGuanLiNoBiaoBing(zhengShuGuanLiParam);
            }
        }
    }
       if (zhengShuGuanLiParam.getFuhao().equals(">")){
           for (ZhengShuGuanLi zhengShuGuanLi : zhengShuGuanLiArrayList) {
               /**再判断该学生的作业是否是这个指定的作业*/
               if (zhengShuGuanLi.getScore() != null && zhengShuGuanLi.getScore() > zhengShuGuanLiParam.getSocre()) {
                       zhengShuGuanLiParam.setUuid(zhengShuGuanLi.getUuid());
                       zhengShuGuanLiService.ZhengShuGuanLiLieBiao(zhengShuGuanLiParam);
                   }else {
                   zhengShuGuanLiParam.setUuid(zhengShuGuanLi.getUuid());
                   zhengShuGuanLiService.ZhengShuGuanLiNoBiaoBing(zhengShuGuanLiParam);
               }
           }
       }
       if (zhengShuGuanLiParam.getFuhao().equals("=")){
           for (ZhengShuGuanLi zhengShuGuanLi : zhengShuGuanLiArrayList) {
               /**再判断该学生的作业是否是这个指定的作业*/
               if (zhengShuGuanLi.getScore() != null && zhengShuGuanLi.getScore() == zhengShuGuanLiParam.getSocre()) {
                       zhengShuGuanLiParam.setUuid(zhengShuGuanLi.getUuid());
                       zhengShuGuanLiService.ZhengShuGuanLiBiaoBing(zhengShuGuanLiParam);
                   }else {
                   zhengShuGuanLiParam.setUuid(zhengShuGuanLi.getUuid());
                   zhengShuGuanLiService.ZhengShuGuanLiNoBiaoBing(zhengShuGuanLiParam);
               }
           }
       }
       return AjaxResult.success("学习标兵判断成功");
   }
   /**证书管理导表*/
  @SneakyThrows
  @PostMapping("/DaoBiao")
    public void DaoBiao(HttpServletResponse httpServletResponse, ZhengShuGuanLiParam zhengShuGuanLiParam) {
      List<ZhengShuGuanLi> zhengShuGuanLis = zhengShuGuanLiService.ZhengShuGuanLiDaoBiao(zhengShuGuanLiParam);
      ExcelUtil<ZhengShuGuanLi> util = new ExcelUtil<ZhengShuGuanLi>(ZhengShuGuanLi.class);
      util.exportExcel(httpServletResponse, zhengShuGuanLis, "zzsgcl");
  }

}
